package org.code.boot.mapper.boot;

import java.util.List;
import java.util.Collection;
import org.code.boot.domain.boot.BizOrderHistory;

/**
 * 订单历史记录Mapper接口
 * 
 * @author coder
 * @date 2025-08-28
 */
public interface BizOrderHistoryMapper 
{
    /**
     * 查询订单历史记录
     * 
     * @param historyId 订单历史记录主键
     * @return 订单历史记录
     */
    public BizOrderHistory selectBizOrderHistoryByHistoryId(Long historyId);

    /**
     * 查询订单历史记录列表
     * 
     * @param bizOrderHistory 订单历史记录
     * @return 订单历史记录集合
     */
    public List<BizOrderHistory> selectBizOrderHistoryList(BizOrderHistory bizOrderHistory);

    /**
     * 新增订单历史记录
     * 
     * @param bizOrderHistory 订单历史记录
     * @return 结果
     */
    public int insertBizOrderHistory(BizOrderHistory bizOrderHistory);

    /**
     * 修改订单历史记录
     * 
     * @param bizOrderHistory 订单历史记录
     * @return 结果
     */
    public int updateBizOrderHistory(BizOrderHistory bizOrderHistory);

    /**
     * 删除订单历史记录
     * 
     * @param historyId 订单历史记录主键
     * @return 结果
     */
    public int deleteBizOrderHistoryByHistoryId(Long historyId);

    /**
     * 批量删除订单历史记录
     * 
     * @param historyIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteBizOrderHistoryByHistoryIds(Long[] historyIds);

    /**
     * 根据ID集合查询订单历史记录列表
     * 
     * @param ids 订单历史记录ID集合
     * @return 订单历史记录列表
     */
    public List<BizOrderHistory> selectBizOrderHistoryListByIds(Collection<Long> ids);

    /**
     * 根据用户ID列表统计订单历史记录数量
     * 
     * @param userIds 用户ID集合
     * @return 订单历史记录数量
     */
    public Long countByUserIds(Collection<Long> userIds);

    /**
     * 根据关联订单ID列表统计订单历史记录数量
     * 
     * @param orderIds 关联订单ID集合
     * @return 订单历史记录数量
     */
    public Long countByOrderIds(Collection<Long> orderIds);

}
